perm filename CMS.SHT[T,LSP] blob sn#620934 filedate 1981-10-21 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	GETDUES: 
C00005 ENDMK
CāŠ—;
GETDUES: 
	PROCEDURE OPTIONS (MAIN);

	/*PROGRAM TO PROCESS OVERDUE BOOKS AND CHARGE APPROPRIATE FINE*/

	DECLARE
		NAME CHAR (15), /*NAME OF PATRON*/
		ACC_# CHAR (10), /*ACCESSION NO. OF BK*/
		DATE FIXED DECIMAL (3,0), /*DAY BK. BORROWED*/
		LOAN_PER FIXED DECIMAL (3,0), /*LOAN PERIOD*/
		TODAY FIXED DECIMAL (3,0), /*TODAY'S DATE/
		BRIBE_RATE FIXED DECIMAL (5,2), /*PER DIEM FINE*/
		BRIBE FIXED DECIMAL (5,2), /*TO TAKE HOLD OFF REGISTRATION*/
		FLAG FIXED DECIMAL (1,0), /*QUIT FLAG*/
		TOTAL FIXED DECIMAL (5,2); /*TOTAL AMT. OF FINES*/
		
	/*INITIALIZE VARIABLES*/

	PUT SKIP LIST('CURRENT DATE ');
	GET LIST (TODAY);
	TOTAL = 0;
	FLAG = 0;
	ON ENDFILE (SYSIN) FLAG = 1;

	PUT SKIP LIST('NAME',`ACCESSION',`DATE',`RATE');
	GET LIST (NAME,ACC_#,DATE,LOAN_PER);
	PUT SKIP LIST (`BORROWER NAME',`AMOUNT DUE');

SHITLST: 	DO WHILE (FLAG = 0);  /*PERUSE VICTIMS*/
		IF TODAY < DATE + LOAN_PER THEN /*COMPUTE BRIBE FOR OVERDUE BKS*/
;;; Do they have begin/end blocks?
			BEGIN
		   	BRIBE = (TODAY - (DATE + LOAN_PER))*BRIBE_RATE; 
			TOTAL = TOTAL + BRIBE;
			PUT SKIP LIST (NAME,BRIBE); /*OFFENDERS ON THE SHIT LIST*/
			END;
		PUT SKIP LIST('NAME',`ACCESSION',`DATE',`RATE');
		GET LIST (NAME, ACC_#,DATE,LOAN_PER);
		END SHITLST;

	/*PRINT RESULTS*/

	PUT SKIP LIST (`TOTAL',TOTAL);

	END GETDUES;